package guda.house.dal.dao;

import guda.grape.autogen.common.page.BaseQuery;
import guda.house.dal.dataobject.BillElecDO;
import guda.house.dal.dataobject.BillParkingDO;

import java.util.Date;
import java.util.List;

public interface BillParkingDAO {


    Long insert(BillParkingDO billParking);


    BillParkingDO getBillParkingById(Long billId);


    boolean delBillParkingById(Long billId);

    List<BillParkingDO> getBillParkingByIds(List idsList);

    /**
     * 清空测试用例加入的autoincrement
     */
    void cleanAutoIncrement(Long billId);

    List<BillParkingDO> selectForPage(BaseQuery baseQuery);

    int countForPage(BaseQuery baseQuery);

    void updateByIdSelective(BillParkingDO billParking);

    List<BillParkingDO> getByYear(Long parkingId,Integer recordYear);

    List<BillParkingDO> selectForUnpay(BaseQuery baseQuery);

    int countForUnpay(BaseQuery baseQuery);

    Long statBill(List<Long> parkingIdList,String gmtDate,Integer isPayed);

    Long statBillRate(List<Long> suitIdList,Integer recordYear,Integer isPayed);

    BillParkingDO selectLatest(Long suiteId);

    List<BillParkingDO> getByPayId(Long payId);


    Long statDichanDiscount(List<Long> parkingIdList,String gmtDate);

    Long statSelfDiscount(List<Long> parkingIdList,String gmtDate);

    List<BillParkingDO> statLastBill(List<Long> suiteIdList,Integer isPayed);

    Long statPaidBill(List<Long> billIdList);



}
